<?
class SampleObject
{
   public $var1;
   private $var2;
   protected $var3;
   public static $var4;
   private $staticvars = array();
   public function __construct()
   {
      $this->var1 = "Pierwsza warto";
      $this->var2 = "Druga warto";
      $this->var3 = "Trzecia warto";
      SampleObject::$var4 = "Czwarta warto";
   }
   public function __sleep()
   {
      $vars = get_class_vars(get_class($this));
      foreach($vars as $key=>$val)
      {
         if (!empty($val))
         $this->staticvars[$key]=$val;
      }
      return array_keys( get_object_vars( $this ) );
   }
   public function __wakeup()
   {
      foreach ($this->staticvars as $key=>$val)
      {
         $prop = new ReflectionProperty(get_class($this), $key);
         $prop->setValue(get_class($this), $val);
      }
      // $this->staticvars=array();
   }
}
?>
